package com.da.javatest.interview.session1;

/**
 * @author chenlida
 * @date 2020/3/25 17:18
 *
 * 首先执行<clinit>方法，静态的会先初始化
 * 由于继承会先初始化父类再初始化子类
 * 静态变量和静态代码块谁在前面谁先初始化
 *
 * 由于子类重写了test()方法，所以父类调用的时候其实是子类的
 * 非静态代码块在无参构造之前初始化
 */
public class Test03Son extends Test03Father {
    private int i = method();
    private static int j = test();

    static {
        System.out.print("(6)");
    }

    public Test03Son() {
        System.out.print("(7)");
    }

    {
        System.out.print("(8)");
    }

    @Override
    public int method() {
        System.out.print("(9)");
        return 0;
    }

    public static int test() {
        System.out.print("(10)");
        return 0;
    }

    public static void main(String[] args) {
        new Test03Son();
        System.out.println();
        new Test03Son();
    }
}
